home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / despereaux-swings.swf / scripts / Box2D / Common / Math / b2Mat22.as next >
Encoding:
Text File  |  2011-10-17  |  3.5 KB  |  137 lines

  1. package Box2D.Common.Math
  2. {
  3.    public class b2Mat22
  4.    {
  5.        
  6.       
  7.       public var col1:b2Vec2;
  8.       
  9.       public var col2:b2Vec2;
  10.       
  11.       public function b2Mat22(param1:Number = 0, param2:b2Vec2 = null, param3:b2Vec2 = null)
  12.       {
  13.          var _loc4_:Number = NaN;
  14.          var _loc5_:Number = NaN;
  15.          col1 = new b2Vec2();
  16.          col2 = new b2Vec2();
  17.          super();
  18.          if(param2 != null && param3 != null)
  19.          {
  20.             col1.SetV(param2);
  21.             col2.SetV(param3);
  22.          }
  23.          else
  24.          {
  25.             _loc4_ = Math.cos(param1);
  26.             _loc5_ = Math.sin(param1);
  27.             col1.x = _loc4_;
  28.             col2.x = -_loc5_;
  29.             col1.y = _loc5_;
  30.             col2.y = _loc4_;
  31.          }
  32.       }
  33.       
  34.       public function SetIdentity() : void
  35.       {
  36.          col1.x = 1;
  37.          col2.x = 0;
  38.          col1.y = 0;
  39.          col2.y = 1;
  40.       }
  41.       
  42.       public function Set(param1:Number) : void
  43.       {
  44.          var _loc2_:Number = NaN;
  45.          var _loc3_:Number = NaN;
  46.          _loc2_ = Math.cos(param1);
  47.          _loc3_ = Math.sin(param1);
  48.          col1.x = _loc2_;
  49.          col2.x = -_loc3_;
  50.          col1.y = _loc3_;
  51.          col2.y = _loc2_;
  52.       }
  53.       
  54.       public function SetVV(param1:b2Vec2, param2:b2Vec2) : void
  55.       {
  56.          col1.SetV(param1);
  57.          col2.SetV(param2);
  58.       }
  59.       
  60.       public function SetZero() : void
  61.       {
  62.          col1.x = 0;
  63.          col2.x = 0;
  64.          col1.y = 0;
  65.          col2.y = 0;
  66.       }
  67.       
  68.       public function SetM(param1:b2Mat22) : void
  69.       {
  70.          col1.SetV(param1.col1);
  71.          col2.SetV(param1.col2);
  72.       }
  73.       
  74.       public function AddM(param1:b2Mat22) : void
  75.       {
  76.          col1.x += param1.col1.x;
  77.          col1.y += param1.col1.y;
  78.          col2.x += param1.col2.x;
  79.          col2.y += param1.col2.y;
  80.       }
  81.       
  82.       public function Abs() : void
  83.       {
  84.          col1.Abs();
  85.          col2.Abs();
  86.       }
  87.       
  88.       public function Copy() : b2Mat22
  89.       {
  90.          return new b2Mat22(0,col1,col2);
  91.       }
  92.       
  93.       public function Invert(param1:b2Mat22) : b2Mat22
  94.       {
  95.          var _loc2_:Number = NaN;
  96.          var _loc3_:Number = NaN;
  97.          var _loc4_:Number = NaN;
  98.          var _loc5_:Number = NaN;
  99.          var _loc6_:Number = NaN;
  100.          _loc2_ = col1.x;
  101.          _loc3_ = col2.x;
  102.          _loc4_ = col1.y;
  103.          _loc5_ = col2.y;
  104.          _loc6_ = _loc2_ * _loc5_ - _loc3_ * _loc4_;
  105.          _loc6_ = 1 / _loc6_;
  106.          param1.col1.x = _loc6_ * _loc5_;
  107.          param1.col2.x = -_loc6_ * _loc3_;
  108.          param1.col1.y = -_loc6_ * _loc4_;
  109.          param1.col2.y = _loc6_ * _loc2_;
  110.          return param1;
  111.       }
  112.       
  113.       public function GetAngle() : Number
  114.       {
  115.          return Math.atan2(col1.y,col1.x);
  116.       }
  117.       
  118.       public function Solve(param1:b2Vec2, param2:Number, param3:Number) : b2Vec2
  119.       {
  120.          var _loc4_:Number = NaN;
  121.          var _loc5_:Number = NaN;
  122.          var _loc6_:Number = NaN;
  123.          var _loc7_:Number = NaN;
  124.          var _loc8_:Number = NaN;
  125.          _loc4_ = col1.x;
  126.          _loc5_ = col2.x;
  127.          _loc6_ = col1.y;
  128.          _loc7_ = col2.y;
  129.          _loc8_ = _loc4_ * _loc7_ - _loc5_ * _loc6_;
  130.          _loc8_ = 1 / _loc8_;
  131.          param1.x = _loc8_ * (_loc7_ * param2 - _loc5_ * param3);
  132.          param1.y = _loc8_ * (_loc4_ * param3 - _loc6_ * param2);
  133.          return param1;
  134.       }
  135.    }
  136. }
  137.